// TODO: This file intentionally left blank to prevent import/upgrade errors. It should eventually be removed.

using System;


namespace InControl
{
    public sealed class UnknownUnityDeviceProfile : UnityInputDeviceProfile
    {
        public UnknownUnityDeviceProfile(string joystickName)
        {
            Name = "Unknown Device";
            if (joystickName != "")
            {
                Name += " (" + joystickName + ")";
            }

            Meta = "";
            Sensitivity = 1.0f;
            LowerDeadZone = 0.2f;
            UpperDeadZone = 0.9f;

            IncludePlatforms = null;
            JoystickNames = new[] { joystickName };

            ButtonMappings = new[] {
                new InputControlMapping {
                    Handle = "A",
                    Target = InputControlType.Action1,
                    Source = Button0
                },
                new InputControlMapping {
                    Handle = "B",
                    Target = InputControlType.Action2,
                    Source = Button1
                },
                new InputControlMapping {
                    Handle = "X",
                    Target = InputControlType.Action3,
                    Source = Button2
                },
                new InputControlMapping {
                    Handle = "Y",
                    Target = InputControlType.Action4,
                    Source = Button3
                },
                new InputControlMapping {
                    Handle = "Left Bumper",
                    Target = InputControlType.LeftBumper,
                    Source = Button4
                },
                new InputControlMapping {
                    Handle = "Right Bumper",
                    Target = InputControlType.RightBumper,
                    Source = Button5
                },
                new InputControlMapping {
                    Handle = "Left Stick Button",
                    Target = InputControlType.LeftStickButton,
                    Source = Button8
                },
                new InputControlMapping {
                    Handle = "Right Stick Button",
                    Target = InputControlType.RightStickButton,
                    Source = Button9
                },
                new InputControlMapping {
                    Handle = "Back",
                    Target = InputControlType.Back,
                    Source = Button6
                },
                new InputControlMapping {
                    Handle = "Start",
                    Target = InputControlType.Start,
                    Source = Button7
                }
            };

            AnalogMappings = new[] {
                LeftStickLeftMapping( Analog0 ),
                LeftStickRightMapping( Analog0 ),
                LeftStickUpMapping( Analog1 ),
                LeftStickDownMapping( Analog1 ),

                RightStickLeftMapping( Analog3 ),
                RightStickRightMapping( Analog3 ),
                RightStickUpMapping( Analog4 ),
                RightStickDownMapping( Analog4 ),

                DPadLeftMapping( Analog5 ),
                DPadRightMapping( Analog5 ),
                DPadUpMapping2( Analog6 ),
                DPadDownMapping2( Analog6 ),

                new InputControlMapping {
                    Handle = "Left Trigger",
                    Target = InputControlType.LeftTrigger,
                    Source = Analog2,
                    SourceRange = InputRange.ZeroToOne,
                    TargetRange = InputRange.ZeroToOne,
                },
                new InputControlMapping {
                    Handle = "Right Trigger",
                    Target = InputControlType.RightTrigger,
                    Source = Analog2,
                    SourceRange = InputRange.ZeroToMinusOne,
                    TargetRange = InputRange.ZeroToOne,
                },

                new InputControlMapping {
                    Handle = "Left Trigger",
                    Target = InputControlType.LeftTrigger,
                    Source = Analog8
                },
                new InputControlMapping {
                    Handle = "Right Trigger",
                    Target = InputControlType.RightTrigger,
                    Source = Analog9
                }
            };
        }


        //public sealed override bool IsKnown
        //{
        //    get
        //    {
        //        return false;
        //    }
        //}
    }
}



